[INFO] cloning repository https://github.com/JessevGool/aoc-2025
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JessevGool/aoc-2025" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJessevGool%2Faoc-2025", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJessevGool%2Faoc-2025'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 52b049c48b69a5d328092f5f95260ec7d3193099
[INFO] checking JessevGool/aoc-2025 against master#4eb62535fc12dd1a63fd43a4173e224e79313c4d for pr-158816
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJessevGool%2Faoc-2025" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/JessevGool/aoc-2025
[INFO] finished tweaking git repo https://github.com/JessevGool/aoc-2025
[INFO] tweaked toml for git repo https://github.com/JessevGool/aoc-2025 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JessevGool/aoc-2025 on toolchain 4eb62535fc12dd1a63fd43a4173e224e79313c4d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JessevGool/aoc-2025 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded criterion v0.8.0
[INFO] [stderr]   Downloaded alloca v0.4.0
[INFO] [stderr]   Downloaded minilp v0.2.2
[INFO] [stderr]   Downloaded criterion-plot v0.8.0
[INFO] [stderr]   Downloaded sprs v0.7.1
[INFO] [stderr]   Downloaded ndarray v0.13.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 908aaf81443c6663a41c3e417ccd636ef4979d6184e8e163e6e1d5cd62abd0fa
[INFO] running `Command { std: "docker" "start" "908aaf81443c6663a41c3e417ccd636ef4979d6184e8e163e6e1d5cd62abd0fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "908aaf81443c6663a41c3e417ccd636ef4979d6184e8e163e6e1d5cd62abd0fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "908aaf81443c6663a41c3e417ccd636ef4979d6184e8e163e6e1d5cd62abd0fa" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "908aaf81443c6663a41c3e417ccd636ef4979d6184e8e163e6e1d5cd62abd0fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "908aaf81443c6663a41c3e417ccd636ef4979d6184e8e163e6e1d5cd62abd0fa" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling cc v1.2.48
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling ndarray v0.13.1
[INFO] [stderr]     Checking matrixmultiply v0.2.4
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking atoi v2.0.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking clap_builder v4.5.53
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]     Checking page_size v0.6.0
[INFO] [stderr]     Checking criterion-plot v0.8.0
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking clap v4.5.53
[INFO] [stderr]     Checking sprs v0.7.1
[INFO] [stderr]     Checking minilp v0.2.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking criterion v0.8.0
[INFO] [stderr]     Checking aoc-2025 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::mem::discriminant`
[INFO] [stdout]  --> src/bin/day08.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::mem::discriminant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_path_test`
[INFO] [stdout]  --> src/bin/day08.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use aoc_2025::{input_path, input_path_test, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::discriminant`
[INFO] [stdout]  --> src/bin/day08.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::mem::discriminant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fmt::DebugList` and `num::ParseIntError`
[INFO] [stdout]  --> src/bin/day03.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::DebugList, num::ParseIntError};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_path_test`
[INFO] [stdout]  --> src/bin/day08.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use aoc_2025::{input_path, input_path_test, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_path_test`
[INFO] [stdout]  --> src/bin/day09.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use aoc_2025::{input_path, input_path_test, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::DebugList`
[INFO] [stdout]  --> src/bin/day11.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     fmt::DebugList,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_path_test`
[INFO] [stdout]  --> src/bin/day11.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | use aoc_2025::{input_path, input_path_test, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::DebugList`
[INFO] [stdout]  --> src/bin/day12.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::DebugList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lines`
[INFO] [stdout]  --> src/bin/day12.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use aoc_2025::{input_path, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashSet`
[INFO] [stdout]  --> src/bin/day05.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::max, collections::HashSet, ops::RangeInclusive};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lines`
[INFO] [stdout]  --> src/bin/day05.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use aoc_2025::{input_path, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::DebugList`
[INFO] [stdout]  --> src/bin/day11.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     fmt::DebugList,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_path_test`
[INFO] [stdout]  --> src/bin/day11.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | use aoc_2025::{input_path, input_path_test, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/bin/day02.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::string`
[INFO] [stdout]  --> src/bin/day02.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lines`
[INFO] [stdout]  --> src/bin/day02.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | use aoc_2025::{input_path, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/bin/day02.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::string`
[INFO] [stdout]  --> src/bin/day02.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lines`
[INFO] [stdout]  --> src/bin/day02.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | use aoc_2025::{input_path, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fmt::DebugList` and `num::ParseIntError`
[INFO] [stdout]  --> benches/../src/bin/day03.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::DebugList, num::ParseIntError};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashSet`
[INFO] [stdout]  --> src/bin/day05.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::max, collections::HashSet, ops::RangeInclusive};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lines`
[INFO] [stdout]  --> src/bin/day05.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use aoc_2025::{input_path, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead
[INFO] [stdout]  --> benches/day03.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use criterion::{black_box, criterion_group, criterion_main, Criterion};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead
[INFO] [stdout]   --> benches/day03.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |             let res = day03::part1(black_box(&input)).unwrap();
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead
[INFO] [stdout]   --> benches/day03.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |             black_box(res);
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead
[INFO] [stdout]   --> benches/day03.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |             black_box(res);
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/bin/day03.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut input = read_to_string(input_path(3))?;
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `idx` is never read
[INFO] [stdout]   --> src/bin/day03.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct Battery {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 95 |     idx: i32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Battery` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap`, `fmt::DebugList`, and `hash::Hash`
[INFO] [stdout]  --> src/bin/day10.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, fmt::DebugList, hash::Hash};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_path_test`
[INFO] [stdout]  --> src/bin/day10.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use aoc_2025::{input_path, input_path_test, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::DebugList`
[INFO] [stdout]  --> src/bin/day01.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::DebugList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead
[INFO] [stdout]  --> benches/day07.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use criterion::{black_box, criterion_group, criterion_main, Criterion};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead
[INFO] [stdout]   --> benches/day07.rs:16:36
[INFO] [stdout]    |
[INFO] [stdout] 16 |             let res = day07::part2(black_box(&christmas_tree)).unwrap();
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead
[INFO] [stdout]   --> benches/day07.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |             black_box(res);
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap`, `fmt::DebugList`, and `hash::Hash`
[INFO] [stdout]  --> src/bin/day10.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, fmt::DebugList, hash::Hash};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_path_test`
[INFO] [stdout]  --> src/bin/day10.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use aoc_2025::{input_path, input_path_test, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_path_test`
[INFO] [stdout]  --> src/bin/day09.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use aoc_2025::{input_path, input_path_test, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> benches/../src/bin/day03.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut input = read_to_string(input_path(3))?;
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::DebugList`
[INFO] [stdout]  --> src/bin/day12.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::DebugList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lines`
[INFO] [stdout]  --> src/bin/day12.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use aoc_2025::{input_path, lines, read_to_string};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::DebugList`
[INFO] [stdout]  --> src/bin/day01.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::DebugList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> benches/day07.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 |  let mut christmas_tree = ChristmasTree::new(&input);
[INFO] [stdout]    |      ----^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]  --> benches/../src/bin/day03.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn main() -> Result<()> {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> benches/../src/bin/day03.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn part2(input: &str) -> Result<i64> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `idx` is never read
[INFO] [stdout]   --> benches/../src/bin/day03.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct Battery {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 95 |     idx: i32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Battery` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]  --> benches/../src/bin/day07.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn main() -> Result<()> {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> benches/../src/bin/day07.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn part1(christmas_tree: &mut ChristmasTree) -> Result<i128> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_lines` is never used
[INFO] [stdout]   --> benches/../src/bin/day07.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn draw_lines(christmas_tree: &mut ChristmasTree, start_x: usize, start_y: usize) -> i128 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> benches/../src/bin/day07.rs:177:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl ChristmasTree {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn reset(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `indicator_lights` is never read
[INFO] [stdout]   --> src/bin/day10.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Machine {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] 32 |     indicator_lights: Vec<IndicatorLight>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `indicator_lights` is never read
[INFO] [stdout]   --> src/bin/day10.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Machine {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] 32 |     indicator_lights: Vec<IndicatorLight>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fmt::DebugList` and `num::ParseIntError`
[INFO] [stdout]  --> src/bin/day03.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::DebugList, num::ParseIntError};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/bin/day03.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut input = read_to_string(input_path(3))?;
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `idx` is never read
[INFO] [stdout]   --> src/bin/day03.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct Battery {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 95 |     idx: i32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Battery` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.01s
[INFO] running `Command { std: "docker" "inspect" "908aaf81443c6663a41c3e417ccd636ef4979d6184e8e163e6e1d5cd62abd0fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "908aaf81443c6663a41c3e417ccd636ef4979d6184e8e163e6e1d5cd62abd0fa", kill_on_drop: false }`
[INFO] [stdout] 908aaf81443c6663a41c3e417ccd636ef4979d6184e8e163e6e1d5cd62abd0fa
